package com.ynet.middleground.contract.entity;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 合同模板表
 * </p>
 *
 * @author liulx
 * @since 2020-04-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ct_template")
public class Template extends Model<Template> {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 模板名称
     */
    private String name;

    /**
     * 模板类型 0：合同模板、1：平台协议模板、2：档案模板
     */
    private String type;

    /**
     * 产品类型
     */
    private String productType;

    /**
     * 合约类型
     */
    private Integer contractTypeId;

    /**
     * 合同种类 0：标准合同（制式合同）、1：非标准合同（非制式合同）
     */
    private String kind;

    /**
     * 模板版本
     */
    private Integer version;

    /**
     * 描述
     */
    private String description;

    /**
     * 模板文件 OSS 地址
     */
    private String content;

    /**
     * 模板状态 0：未启用，1：启用中，2：已启用，3：已停用，4：已过期
     */
    private String status;

    /**
     * 上一版本编号
     */
    private Integer prevId;

    /**
     * 签章数量
     */
    private Integer signatureNumber;

    /**
     * 启用时间
     */
    private LocalDateTime gmtActive;

    /**
     * 停用时间
     */
    private LocalDateTime gmtInactive;

    /**
     * 是否删除 1：删除，0：未删除 默认 0
     */
    private Boolean isDeleted;

    /**
     * 渠道
     */
    private String channel;

    /**
     * 创建时间
     */
    private LocalDateTime gmtCreate;

    /**
     * 创建者
     */
    private Integer createBy;

    /**
     * 更新时间
     */
    private LocalDateTime gmtModified;

    /**
     * 更新者
     */
    private Integer modifiedBy;

    /**
     * 业态ID
     */
    private Integer formatId;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
